$(function() {
	$("#jqGrid").jqGrid({
		url : '../config/list',
		datatype : "json",
		colModel : [ {
			label : '配置编号',
			name : 'configId',
			width : 50,
			key : true
		}, {
			label : '队列名称',
			name : 'queuesName',
			width : 80
		}, {
			label : '交换机名称',
			name : 'exchangesName',
			width : 80
		}, {
			label : '平台名称',
			name : 'sceneName',
			width : 80
		}, {
			label : '应用名称',
			name : 'apliName',
			width : 80
		}, {
			label : '绑定key',
			name : 'bindingKey',
			width : 80
		}, {
			label : '映射key',
			name : 'mapKey',
			width : 80
		} ],
		viewrecords : true,
		height : 385,
		rowNum : 10,
		rowList : [ 10, 30, 50 ],
		rownumbers : true,
		rownumWidth : 25,
		autowidth : true,
		multiselect : true,
		pager : "#jqGridPager",
		jsonReader : {
			root : "page.list",
			page : "page.currPage",
			total : "page.totalPage",
			records : "page.totalCount"
		},
		prmNames : {
			page : "page",
			rows : "limit",
			order : "order"
		},
		gridComplete : function() {
			// 隐藏grid底部滚动条
			$("#jqGrid").closest(".ui-jqgrid-bdiv").css({
				"overflow-x" : "hidden"
			});
		}
	});
});


//页面验证
var config;
$(function() {
	config = $("#config").Validform({
		tiptype : 3,
		//showAllError:true,
		datatype : {
			//匹配是否合法(英文 数字横线组成)
			"key" : /^[\w\d-\+\.]+$/,
		},

	});
	config.addRule([ {
		ele : ".form-control:eq(0)",
		datatype : "*",
		nullmsg : "请选择队列",
		errormsg : "请选择队列"
		
	},
	{
		ele : ".form-control:eq(1)",
		datatype : "*",
		nullmsg : "请选择交换机",
		errormsg : "请选择交换机"
		
	},
	{
		ele : ".form-control:eq(2)",
		datatype : "*",
		nullmsg : "请选择平台",
		errormsg : "请选择平台"
		
	},
	{
		ele : ".form-control:eq(3)",
		datatype : "*",
		nullmsg : "请选择应用",
		errormsg : "请选择应用"
		
	},
	{
		ele : ".form-control:eq(4)",
		datatype : "key",
		nullmsg : "请输入绑定key",
		errormsg : "请输入正确格式（字母 数字 横线组成）"
		
	},
	{
		ele : ".form-control:eq(5)",
		datatype : "key",
		nullmsg : "请输入映射key",
		errormsg : "请输入正确格式（字母 数字 横线组成）"
		
	}

	]);
});


var vm = new Vue({
	el : '#rrapp',
	data : {
		showList : true,
		title : null,
		queuesList : {},
		exchangesList : {},
		sceneList : {},
		taplicationList:{},
		config : {}
	},
	methods : {
		query : function() {
			vm.reload();
		},
		add : function() {
			vm.showList = false;
			vm.title = "新增";
			vm.queuesList = {};
			vm.exchangesList = {};
			vm.sceneList = {};
			vm.taplicationList={};
			vm.config = {};
			// 获取队列信息
			this.getQueuesList();
			// 获取交换机信息
			this.getExchangesList();
			// 获取场景信息
			this.getSceneList();
			// 获取应用信息
			this.getTaplicationListList();
		},
		update : function(event) {
			var configId = getSelectedRow();
			if (configId == null) {
				return;
			}
			vm.showList = false;
			vm.title = "修改";

			vm.getInfo(configId);
			// 获取队列信息
			this.getQueuesList();
			// 获取交换机信息
			this.getExchangesList();
			// 获取场景信息
			this.getSceneList();
			// 获取应用信息
			this.getTaplicationListList();
		},
		saveOrUpdate : function(event) {
			//表单提交前验证
			var bool = config.check();
			if (!bool) {
				return false;
			}			
			var url = vm.config.configId == null ? "../config/save"
					: "../config/update";
			$.ajax({
				type : "POST",
				url : url,
				data : JSON.stringify(vm.config),
				success : function(r) {
					if (r.code === 0) {
						alert('操作成功', function(index) {
							vm.reload();
						});
					} else {
						alert(r.msg);
					}
				}
			});
		},
		del : function(event) {
			var configIds = getSelectedRows();
			if (configIds == null) {
				return;
			}

			confirm('确定要删除选中的记录？', function() {
				$.ajax({
					type : "POST",
					url : "../config/delete",
					data : JSON.stringify(configIds),
					success : function(r) {
						if (r.code == 0) {
							alert('操作成功', function(index) {
								$("#jqGrid").trigger("reloadGrid");
							});
						} else {
							alert(r.msg);
						}
					}
				});
			});
		},
		getInfo : function(configId) {
			$.get("../config/info/" + configId, function(r) {
				vm.config = r.config;
			});
		},
		// 获取队列信息方法
		getQueuesList : function() {

			$.get("../queues/select", function(r) {
				// queuesList赋值
				vm.queuesList = r.list;
			});
		},
		getExchangesList : function() {

			$.get("../exchanges/select", function(r) {
				vm.exchangesList = r.list;
			});
		},
		getSceneList : function() {

			$.get("../scene/select", function(r) {
				vm.sceneList = r.list;
			});
		},
		getTaplicationListList: function() {

			$.get("../taplication/select", function(r) {
				vm.taplicationList = r.list;
			});
		},
		reload : function(event) {
			vm.showList = true;
			var page = $("#jqGrid").jqGrid('getGridParam', 'page');
			$("#jqGrid").jqGrid('setGridParam', {
				page : page
			}).trigger("reloadGrid");
		}
	}
});